Service Providers (SPs) often charge customers (tenants) based upon offered Service Levels (SLOs). Some service providers allow for multiple tenants. These tenants can be associated with the same entity or with different entities. Each of the tenants is often associated with a quota. For example, in a computing system that provides backup services, each tenant may be allocated a certain amount of storage. The quota of storage may be hard or variable. End-user administrators may sub-divide their allocated resource amongst configurable objects (e.g., Mtrees).
For each object, an end user is conventionally required to specify very fine-grained metrics (i.e. maximum number of backup streams, maximum throughput) for each of their objects. Under this schema, a number of problems are introduced by the complexities of assigning the correct metrics to each object. For example, a SP must match a high-level SLO goal to fine-grained resource allocations and an end-user administrator must perform a similar task at the object level. This process is further complicated by the fact that workloads are not stable and tend to vary over time. In addition, a hard quota schema does not allow for overprovisioning of resources.
Conventional approaches to scheduling are too fine-grained and require users to enact policies at too low of a level. The ability to ensure that objects receive sufficient resources to satisfy the requirements of the service provider and the end user is difficult to achieve. Systems and methods are needed to simplify the process of scheduling processes or flows in a computing system.